THIS IS THE SAMPLE ORIGINAL CODE
(it is out of context: NOT a logical, continual source, but
varied lines to show how the translation works)


Here's an unlatered sample of the conversion output from our software.
The original source follows first, and the result second. For the purpose
of this sample, the original is not contiguous source, but a random
sample of 8088 instructions. Therefore you can expect your actual 
conversion to be more coherent.

FIRST: HOW GOOD IS THE TRANSLATION?
Well, in a random sample of 36 instructions (see below)  from the
8088, the number of cycles required was 429. The conversion, after deleting
unneeded lines, took 196 cycles. Thus, even allowing for different CPU
speeds, the translation will be, in fact, slightly FASTER than the
original code.


Using the line-by-line method, you'll notice that most of your remaining
work is in deleting un-needed lines (ie "pha", "pla") and in some cases,
altering the operand of the resulting line.

The source you send us MUST:
have all comments begin with an semicolon " ; "
be in standard GS readable TXT or SRC format.


{--------------- the orginal 8088 source ---------------}
(the total number of machine cycles here is approximately 430)
(total number of cycles in the conversion is approx 196)

          Mov       Al,1                          ;comment

          Call      Set_Plt                       ;    comment

          Mov       Timer_Tbl,Offset Game_Int     ;comment

          Mov       Byte Ptr Sound_Tbl[0],Snd_IPly;

MvM_SS:   Test      Dbg_Flags,Dbg_SSMd            ;

          Jz        MvM_NSS                       ;

MvM_WSnd: Neg       Bx                            ;

          Shl       Bx,1                          ;

          Mov       Ax,WNoise[Bx+0]               ;comment

          Mov       WNoise[2],Ax                  ;

          Mov       Cx,Sound_Tbl[2]               ;

          In        Al,Port_B                     ;comment

          Or        Al,3                          ;

          Out       Port_B,Al                     ;

          Mov       Al,0b6H                       ;

          Mov       Al,Stop_Cch                   ;

          Mov       Ah,1                          ;

          Mov       Word Ptr Stop_Play,Ax         ;

          Jmp       MvM_StpF                      ;

          Je        MvM_SprD                      ;comment

          Push      Di                            ;

          Mov       Al,[Si].Spr_TDly              ;

          Dec       Al                            ;comment

          Jl        MvM_PDir                      ;

          Mov       [Si].Spr_TDly,Al              ;

          Jg        MvM_PDir                      ;

          Cmp       Si,Ball_Man[0]                ;

          Shr       Bl,1                          ;

          Mov       Al,Ah                         ;

          Cbw                                     ;

          Loop      Ani_RLp                       ;

          Neg       Cx                            ;comment

          Js        MvM_BStp                      ;

          Jae       MvM_BFrI                      ;

          Movs      here,there


{---------- this is the direct conversion as you'd receive it ---------------}



!           MOV       AL,1                          ;COMMENT
           lda   #1                    ;COMMENT
!           CALL      SET_PLT                       ;    COMMENT
           long M
           jsr   SET_PLT               ;    COMMENT
!           MOV       TIMER_TBL,OFFSET GAME_INT     ;COMMENT
           Lla   TIMER_TBL,GAME_INT    ;COMMENT
!           MOV       BYTE PTR SOUND_TBL[0],SND_IPLY;
           save
           lda   SND_IPLY 
           ldx   #0
           sta   SOUND_TBL,x
           restore                     ;
! MVM_SS:   TEST      DBG_FLAGS,DBG_SSMD            ;
MVM_SS     lda   DBG_FLAGS 
           bit   DBG_SSMD              ;
!           JZ        MVM_NSS                       ;
           Jeq   MVM_NSS               ;
! MVM_WSND: NEG       BX                            ;
MVM_WSND   lda   BX 
           eor   #$FFFF
           inc   a
           sta   BX                    ;
!           SHL       BX,1                          ;
           lda   BX 
           asl   #1 
           sta   BX                    ;
!           MOV       AX,WNOISE[BX+0]               ;COMMENT
           long M
           lda   BX
           clc
           adc   #0
           sta holdxy
           ldx   holdxy
           lda   WNOISE,x              ;COMMENT
!           MOV       WNOISE[2],AX                  ;
           ldx   #2
           sta   WNOISE,x              ;
!           MOV       CX,SOUND_TBL[2]               ;
           save
           ldx   #2
           lda   SOUND_TBL,x
           sta   CX 
           restore                     ;
!           IN        AL,PORT_B                     ;COMMENT
! Warning : Macro follows!
           short M
           GetXX AL,PORT_B             ;COMMENT
!           OR        AL,3                          ;
! Warning : May lose register data here!
           ora   #3                    ;
!           OUT       PORT_B,AL                     ;
! Warning : Macro follows!
           PutXX PORT_B,AL             ;
!           MOV       AL,0B6H                       ;
           lda   #$0B6                 ;
!           MOV       AL,STOP_CCH                   ;
           lda   STOP_CCH              ;
!           MOV       AH,1                          ;
           pha
           lda   #1 
           xba
           pla                         ;
!           MOV       WORD PTR STOP_PLAY,AX         ;
           long M
           sta   STOP_PLAY             ;
!           JMP       MVM_STPF                      ;
           jmp   MVM_STPF              ;
!           JE        MVM_SPRD                      ;COMMENT
           Jeq   MVM_SPRD              ;COMMENT
!           PUSH      DI                            ;
           Ph2   DI                    ;
!           MOV       AL,[SI].SPR_TDLY              ;
           short M
           ldy   #SPR_TDLY
           lda   [SI],y                ;
!           DEC       AL                            ;COMMENT
! Warning : May lose register data here!
           dec                         ;COMMENT
!           JL        MVM_PDIR                      ;
           long M
           Jlt   MVM_PDIR              ;
!           MOV       [SI].SPR_TDLY,AL              ;
           short M
           ldy   #SPR_TDLY
           sta   [SI],y                ;
!           JG        MVM_PDIR                      ;
           long M
           Jgt   MVM_PDIR              ;
!           CMP       SI,BALL_MAN[0]                ;
           lda   SI 
           ldx   #0
           cmp   BALL_MAN,x            ;
!           SHR       BL,1                          ;
           short M
           lda   BL 
           lsr   #1 
           sta   BL                    ;
!           MOV       AL,AH                         ;
           xba
 
           pha
           xba
           pla                         ;
!           CBW                                     ;
           long M
           lda   #0
           xba
           long M                      ;
!           LOOP      ANI_RLP                       ;
           bra   ANI_RLP               ;
!           NEG       CX                            ;COMMENT
           lda   CX 
           eor   #$FFFF
           inc   a
           sta   CX                    ;COMMENT
!           JS        MVM_BSTP                      ;
           bmi   MVM_BSTP              ;
!           JAE       MVM_BFRI                      ;
           Jge   MVM_BFRI              ;
!           MOVS      HERE,THERE
! Warning : Macro follows!
           Move  HERE,THERE


{---------- this is the conversion keeping the original lines ---------------}
(total number of cycles in the conversion is approx 196)

 { notice how few changes had to be made! }


!           MOV       AL,1                          ;COMMENT
           lda   #1                    ;COMMENT
!           CALL      SET_PLT                       ;    COMMENT
           jsr   SET_PLT               ;    COMMENT
!           MOV       TIMER_TBL,OFFSET GAME_INT     ;COMMENT
           Lla   TIMER_TBL,GAME_INT    ;COMMENT
!           MOV       BYTE PTR SOUND_TBL[0],SND_IPLY;
           ldx   SND_IPLY 
           stx   SOUND_TBL
! MVM_SS:   TEST      DBG_FLAGS,DBG_SSMD            ;
MVM_SS     lda   DBG_FLAGS 
           bit   DBG_SSMD              ;
!           JZ        MVM_NSS                       ;
           Jeq   MVM_NSS               ;
! MVM_WSND: NEG       BX                            ;
MVM_WSND   lda   BX 
           eor   #$FFFFFFFF
           inc   a
           sta   BX                    ;
!           SHL       BX,1                          ;
           lda   BX 
           asl   #1 
           sta   BX                    ;
!           MOV       AX,WNOISE[BX+0]               ;COMMENT
           long M
           ldx   BX
           lda   WNOISE,x              ;COMMENT
!           MOV       WNOISE[2],AX                  ;
           ldx   #2
           sta   WNOISE,x              ;
!           MOV       CX,SOUND_TBL[2]               ;
           save
           ldx   #2
           lda   SOUND_TBL,x
           sta   CX 
           restore                     ;
!           IN        AL,PORT_B                     ;COMMENT
! Warning : Macro follows!
           short M
           GetXX AL,PORT_B             ;COMMENT
!           OR        AL,3                          ;
! Warning : May lose register data here!
           ora   #3                    ;
!           OUT       PORT_B,AL                     ;
! Warning : Macro follows!
           PutXX PORT_B,AL             ;
!           MOV       AL,0B6H                       ;
           lda   #$0B6                 ;
!           MOV       AL,STOP_CCH                   ;
           lda   STOP_CCH              ;
!           MOV       AH,1                          ;
           pha
           lda   #1 
           xba
           pla                         ;
!           MOV       WORD PTR STOP_PLAY,AX         ;
           long M
           sta   STOP_PLAY             ;
!           JMP       MVM_STPF                      ;
           jmp   MVM_STPF              ;
!           JE        MVM_SPRD                      ;COMMENT
           Jeq   MVM_SPRD              ;COMMENT
!           PUSH      DI                            ;
           Ph2   DI                    ;
!           MOV       AL,[SI].SPR_TDLY              ;
           short M
           ldy   #SPR_TDLY
           lda   [SI],y                ;
!           DEC       AL                            ;COMMENT
! Warning : May lose register data here!
           dec  a                       ;COMMENT
!           JL        MVM_PDIR                      ;
           long M
           Jlt   MVM_PDIR              ;
!           MOV       [SI].SPR_TDLY,AL              ;
           short M
           ldy   #SPR_TDLY
           sta   [SI],y                ;
!           JG        MVM_PDIR                      ;
           long M
           Jgt   MVM_PDIR              ;
!           CMP       SI,BALL_MAN[0]                ;
           lda   SI 
           cmp   BALL_MAN            ;
!           SHR       BL,1                          ;
           short M
           lda   BL 
           lsr   a
           sta   BL                    ;
!           MOV       AL,AH                         ;
           xba
           pha
           xba
           pla                         ;
!           CBW                                     ;
           long M
           lda   #0
           xba
           long M                      ;
!           LOOP      ANI_RLP                       ;
           bra   ANI_RLP               ;
!           NEG       CX                            ;COMMENT
           lda   CX 
           eor   #$FFFFFFFF
           inc   a
           sta   CX                    ;COMMENT
!           JS        MVM_BSTP                      ;
           bmi   MVM_BSTP              ;
!           JAE       MVM_BFRI                      ;
           Jge   MVM_BFRI              ;
!           MOVS      HERE,THERE
! Warning : Macro follows!
           Move  HERE,THERE



{--------------- and the cleaned up result  ---------------}
(total number of cycles in the conversion is approx 196)


           lda   #1                    ;COMMENT
           jsr   SET_PLT               ;    COMMENT
           Lla   TIMER_TBL,GAME_INT    ;COMMENT
           ldx   SND_IPLY 
           stx   SOUND_TBL
MVM_SS     lda   DBG_FLAGS 
           bit   DBG_SSMD              ;
           Jeq   MVM_NSS               ;
MVM_WSND   lda   BX 
           eor   #$FFFFFFFF
           inc   a
           sta   BX                    ;
           lda   BX 
           asl   #1 
           sta   BX                    ;
           long M
           ldx   BX
           lda   WNOISE,x              ;COMMENT
           ldx   #2
           sta   WNOISE,x              ;
           save
           ldx   #2
           lda   SOUND_TBL,x
           sta   CX 
           restore                     ;
!           IN        AL,PORT_B                     ;COMMENT
! Warning : Macro follows!
           short M
           GetXX AL,PORT_B             ;COMMENT
           ora   #3                    ;
!           OUT       PORT_B,AL                     ;
! Warning : Macro follows!
           PutXX PORT_B,AL             ;
           lda   #$0B6                 ;
           lda   STOP_CCH              ;
           pha
           lda   #1 
           xba
           pla                         ;
           long M
           sta   STOP_PLAY             ;
           jmp   MVM_STPF              ;
           Jeq   MVM_SPRD              ;COMMENT
           Ph2   DI                    ;
           short M
           ldy   #SPR_TDLY
           lda   [SI],y                ;
           dec  a                       ;COMMENT
           long M
           Jlt   MVM_PDIR              ;
           short M
           ldy   #SPR_TDLY
           sta   [SI],y                ;
           long M
           Jgt   MVM_PDIR              ;
           lda   SI 
           cmp   BALL_MAN            ;
           short M
           lda   BL 
           lsr   a
           sta   BL                    ;
           xba
           pha
           xba
           pla                         ;
           long M
           lda   #0
           xba
           long M                      ;
           bra   ANI_RLP               ;
           lda   CX 
           eor   #$FFFFFFFF
           inc   a
           sta   CX                    ;COMMENT
           bmi   MVM_BSTP              ;
           Jge   MVM_BFRI              ;
           Move  HERE,THERE
